Character set, collate
Otázka od: BRCKO Peter
1. 6. 2004 11:29
Asi upresnim postup ktorym dochadzam k nekorektnemu triedeniu.
Mozno je problem niekde inde.
1. Pouzivam ISQL
2. Po jeho starte nastavim character set na WIN1250 ( alebo iny pozadovany )
3. Nastavim SQL DIALECT na klientovi na 3.
4. NotePadom mam vytvoreny SCR ktorym vytvaram DB s chracter set WIN1250.
5. NotePadom mam vytvoreny SCR ktorym vytvorim tabulku s varchar bez
definovania
character set ( predpokladam, ze ziska defaultne ten z DB ). Danym SCR,
ktorym tabulku
vytvorim, do nej naplnim slovensku abecedu. Insert tam vsak dava ine znaky
ako vytvorene vo WIN.
Je mozne v ISQL definovat character set pre obsah importovaneho suboru?
Alebo ten subor s obsahom abecedy ma byt vytvoreny inak?
Selectom ( kolone definulem collate PXW_CSY ) ziskam obsah tabulky, ten ma
vsak nezmyselne
znaky - dostali sa tam insertom - to je v principe O.K.
6. Skusil som ten SCR preniest cez ClipBoard a znaky boli v poriadku, len
triedenie bolo nezmyselne.
Tusim, ze je to v pouziti WIN a DOS ISQL zaroven, no neviem ako z toho logicky
von.
Poradi niekto?
Peter Brcko.
W2K, FB 1.0.3.972 ( odskusane aj na FB1.5 )
Odpovedá: horky@cominn.cz
1. 6. 2004 12:00
> From: BRCKO Peter [mailto:peter.brcko@assetsoft.sk]
> Sent: Tuesday, June 01, 2004 11:51 AM
> 1. Pouzivam ISQL
> 2. Po jeho starte nastavim character set na WIN1250 ( alebo
> iny pozadovany )
> 3. Nastavim SQL DIALECT na klientovi na 3.
OK, ale teprve ted se musis prikazem CONNECT pripojit k databazi.
> 4. NotePadom mam vytvoreny SCR ktorym vytvaram DB s chracter
> set WIN1250.
> 5. NotePadom mam vytvoreny SCR ktorym vytvorim tabulku s
> varchar bez definovania character set ( predpokladam, ze ziska defaultne ten
z DB ).
Tady je chyba. Character set a Collate jsou ruzne veci. Character set se urci
podle databaze, ale Collate mas stale neurceno. Nejlepe je definovat si domeny,
ve kterych budes mit urcen Collate.
Napr:
CREATE DOMAIN VARCHAR30_NN AS VARCHAR(30) NOT NULL COLLATE PXW_CSY
> 6. Skusil som ten SCR preniest cez ClipBoard a znaky boli v
> poriadku, len triedenie bolo nezmyselne.
Jeste zkus urcit Collate primo na sloupci v selectu (jen na vyzkouseni, v praxi
je to nepouzitelne):
SELECT SLOUPEC COLLATE PXW_CSY FROM TABULKA
Doporucuji knihu P. Cisare: Podrobna prirucka Interbase/Firebird.
Tam se doctes vse, na co ses ted ptal a mnohem vice
--
S pozdravem Karel Horky, D7, FB 1.0.3, IBX 7.08, WXP SP1
[mailto:horky@cominn.cz]